package com.itheima.utils;

import com.itheima.pojo.Menu;

import java.util.ArrayList;
import java.util.List;

public class RemUtil {
    //获取需要删除的id集合
    public static List<Integer> getRemIds(List<Menu> all, Integer id) {
        //每次调用初始化该集合
        List<Integer> allInt = new ArrayList<>();
        allInt.add(id);
        getList(all, id, allInt);
        return allInt;
    }
    private static List<Integer> getList(List<Menu> all, Integer id, List<Integer> allInt) {
        ArrayList<Integer> objects = new ArrayList<>();
        for (Menu menu : all) {
            //若要删除的id与该对象的Pid相同，则添加该对象的id，并以该对象id为参数进行递归
            if (id.equals(menu.getParentMenuId())){
                allInt.add(menu.getId());
                objects.add(menu.getId());
            }
        }
        //第一次迭代时获取所有选中菜单的次级菜单，第二次获取次级菜单的次级菜单，以此类推
        for (Integer object : objects) {
            getList(all,object,allInt);
        }
        return allInt;
    }

}